home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / text / edit / tecoc-146.lha / type.tes < prev    next >
Text File  |  1991-07-11  |  8KB  |  234 lines

  1. !        TYPE.TEC        !
  2. !      !!TYPE.TEC V39.00!!        !
  3. !                    !
  4. !     Last edit on  2-Jun-83 by MHB    !
  5. !                    !
  6. ! Switches:                !
  7. !                    !
  8. !  /W    Announce file name(s)        !
  9. !  /-W    Don't announce file name(s)    !
  10. !  /H    Use VT52 hold screen mode    !
  11. !     (/H => /H:n if not VT52)    !
  12. !     => /W unless /-W        !
  13. !  /H:n    Count lines and hold        !
  14. !     => /W unless /-W        !
  15. !  /T    Truncate long lines        !
  16. !  /S:"string" Pre-search for "string"    !
  17. !  /N:n    Start at page n or find nth    !
  18. !     occurance of "string"        !
  19. !  /P    Start at top of page instead    !
  20. !     of just before "string"    !
  21. !  /V    Change controls to visibles    !
  22. !  /O:n    Overprint each line n times    !
  23. !  /A:n    Print n lines around string    !
  24. !  /F:x    Flag L(ower) or U(pper) case    !
  25. !  /I    Inspect for wildcard selection    !
  26. !  /L:n    List the first n lines only    !
  27. !                    !
  28. ! Q-regs used:                !
  29. !                    !
  30. !  0% <>0 file found; 0 otherwise    !
  31. !  1% <>0 print filename; 0 otherwise    !
  32. !  2% <>0 no wildcards; 0 otherwise    !
  33. !  3% # of lines to hold; 0 otherwise    !
  34. !  4% <>0 print from top of page    !
  35. !  5% current horizontal position    !
  36. !  6% <>0 search for "string" each time    !
  37. !  7% # of lines to list        !
  38. !  8% scratch                !
  39. !  9% scratch                !
  40. !  A% # parameter to +/- lines        !
  41. !  D% temporary text pointer holder    !
  42. !  H% # of lines before hold needed    !
  43. !  I% <>0 if inspect mode        !
  44. !  L% # of lines left to list        !
  45. !  O% # parameter to overprint count    !
  46. !  S% # parameter to string search    !
  47. !  X% scratch for X$            !
  48. !      VT05       VT52       VT100      !
  49. !  0$ '<cr>'  or '$F`$G' or '^Nd^O'    !
  50. !  1$ '<cr->' or '$Fd$G' or '^N|^O'    !
  51. !  2$ '<lf>'  or '$Fk$G' or '^Ne^O'    !
  52. !  3$ '<tab>' or '$Ff$G' or '^Nb^O'    !
  53. !  4$ '<vt>'  or '$Fj$G' or '^Ni^O"    !
  54. !  5$ '<ff>'  or '$Fa$G' or '^Nc^O'    !
  55. !  6$ '<esc>' or '$Fc$G' or '^N{^O'    !
  56. !  7$ '^'     or '$Fg$G' or '^Ng^O'    !
  57. !  8$ ''      or '$Fi$G' or '^N~^O'    !
  58. !  9$ '<eof>' or '$F~$G' or '^N`^O'    !
  59. !    or '' if not /V            !
  60. !  A$ filename as entered        !
  61. !  B$ wildcard filename if Q2=0        !
  62. !  C$ all control characters 0..31,127    !
  63. !  D$ temporary text holder        !
  64. !  E$ filename switches            !
  65. !  H$ 'hold prompt' macro; else null    !
  66. !  O$ 'overprint' macro and/or        !
  67. !     'line counting' macro; else null    !
  68. !  T$ temporary text for overprint    !
  69. !  S$ 'search string' macro; else <Y>    !
  70. !  V$ 'see all' macro or;        !
  71. !     'hold screen' macro; else HT    !
  72. !  W$ macro to output:            !
  73. !      VT05       VT52       VT100      !
  74. !       ''    or  '$'    or  '$['    !
  75. !  X$ macro to output in binary mode    !
  76. !                    !
  77.  
  78. ! initialize registers and editing mode !
  79. ^D 1,32768ET -1EU 4ED 0ES
  80. 0U0 0U1 0U3 0U4 0U6 1UA 0UI 1US
  81. @^U9// @^UH// @^UO// @^US/QS< Y >/ @^UV/HT/ @^UX/UX 0,1ET QX^T 1,0ET/
  82.  
  83. ! strip the CCL command as needed !
  84. J ::@FS%TYPE%%"S ::@FS%^ES%%^[ '
  85.  
  86. ! check all valid switches !
  87. J :@S%/W%"S @FR// 1U1 '
  88. J :@S%/H%"S @FR// 24U3 ET&512"N 2:WU3 0:W"N ::@S%:%"U @I%:0% ' ^SC ' '
  89.    ::@S%:%"S @FR// \U1 @FR// Q1-1"G Q1U3 ' -1%3^[ Q3UH
  90.    @^UV/0U8 J < .-Z; MH0:; T L -1A-12"E -3%H^[ ' -1%H"L 0UH ' ET; >
  91.         Q8-26"E -1+ '/
  92.    @^UH/QH"E @^A%Press RETURN for more % 0,8ET ^TU8 8,0ET
  93.         13^T ET&512"N 0:W-6"N MW ^^K^T 13^T | F| ' | 10^T '
  94.         Q8-13"E ^T^[ '
  95.         Q8-10"E 1UH '
  96.         Q8-32"E 1UH '
  97.         Q8"D Q8-^^0UH '
  98.         QH"E Q3UH '
  99.         Q8-26"E 10^T HK -1+ ' '/ '
  100.    ET&512"N @^UW// 0:W-6"N @^UW/27MX/ 13^T 0:W"N :@^UW/^^[^T/ 27MX ^^<^T '
  101.    MW ^^H^T MW ^^J^T 0:W"N 27MX @^A/)0/ ^^O&31MX | 27MX ^^G^T
  102.    :QH"E 27MX ^^[^T ' ' 13^T ' ' 1U1 '
  103. J :@S%/T%"S @FR// 0,256ET '
  104. J :@S%/S:%"S @FR// .U0 @I%QS:@_% .,.+1XS 2@S%^EQS% Q0,.XS Q0,.K 0U0
  105.    :@^US/"S Q4"E -QAXD -ZK GD 0,0XD ' '/ J
  106.   :@S%/A%"S @FR// 3UA ::@S%:%"S @FR// \UA @FR// ' -1U6 ' '
  107. J :@S%/F%"S @FR// 0EU ::@S%:U%"S @FR// 1EU | ::@S%:L%"S @FR// 0EU ' ' '
  108. J :@S%/N%"S @FR// 1US ::@S%:%"S @FR// \US @FR// ' '
  109. J :@S%/L%"S @FR// 24U7 ET&512"N 2:WU7 '
  110.    ::@S%:%"S @FR// \U7 @FR// ' Q7UL
  111.    @^UO/J < QL"E ZK ' .-Z; L -1%L^[ > Z"E QL"E -1+ ' '/ '
  112. J :@S%/O%"S @FR// 1UO ::@S%:%"S @FR// \UO @FR// '
  113.    :@^UO/0"E J < .U9 @S%^M^J%; 2R Q9-."E 45< @I% % > 2C |
  114.                  13@I%% 13@I%% Q9,.XT QO< GT > 2C 13@I%% '
  115.                > 0,0XT | -1+ '/ '
  116. J :@S%/P%"S @FR// 1U4 '
  117. J :@S%/V%"S @FR// ET&512"N 0:WU0 | -1U0 ' Q0-6"E -1U0 '
  118.    Q0"L @^UW// | Q3"E @^UW/27MX/ 13^T Q0"N :@^UW/^^[^T/ 27MX ^^<^T '
  119.    Q0"N 27MX @^A/)0/ ^^O&31MX | 27MX ^^G^T ' 13^T ' '
  120.    !      VT05       VT52       VT100   !
  121.    !  0$ '<cr>'  or '$F`$G' or '^Nd^O'    !
  122.    !  1$ '<cr->' or '$Fd$G' or '^N|^O'    !
  123.    !  2$ '<lf>'  or '$Fk$G' or '^Ne^O'    !
  124.    !  3$ '<tab>' or '$Ff$G' or '^Nb^O'    !
  125.    !  4$ '<vt>'  or '$Fj$G' or '^Ni^O'    !
  126.    !  5$ '<ff>'  or '$Fa$G' or '^Nc^O'    !
  127.    !  6$ '<esc>' or '$Fc$G' or '^N{^O'    !
  128.    !  7$ '^'     or '$Fg$G' or '^Ng^O'    !
  129.    !  8$ ''      or '$Fi$G' or '^N~^O'    !
  130.    !  9$ '<eof>' or '$F~$G' or '^N`^O'    !
  131.    Q0"E 27@^U0// ^^F:@^U0// ^^`:@^U0// 27:@^U0// ^^G:@^U0//
  132.         27@^U1// ^^F:@^U1// ^^d:@^U1// 27:@^U1// ^^G:@^U1//
  133.         27@^U2// ^^F:@^U2// ^^k:@^U2// 27:@^U2// ^^G:@^U2//
  134.         27@^U3// ^^F:@^U3// ^^f:@^U3// 27:@^U3// ^^G:@^U3//
  135.         27@^U4// ^^F:@^U4// ^^j:@^U4// 27:@^U4// ^^G:@^U4//
  136.         27@^U5// ^^F:@^U5// ^^a:@^U5// 27:@^U5// ^^G:@^U5//
  137.         27@^U6// ^^F:@^U6// ^^c:@^U6// 27:@^U6// ^^G:@^U6//
  138.         27@^U7// ^^F:@^U7// ^^g:@^U7// 27:@^U7// ^^G:@^U7//
  139.         27@^U8// ^^F:@^U8// ^^i:@^U8// 27:@^U8// ^^G:@^U8//
  140.         27@^U9// ^^F:@^U9// ^^~:@^U9// 27:@^U9// ^^G:@^U9// '
  141.    Q0"G ^^N&31@^U0// ^^d:@^U0// ^^O&31:@^U0//
  142.         ^^N&31@^U1// ^^|:@^U1// ^^O&31:@^U1//
  143.         ^^N&31@^U2// ^^e:@^U2// ^^O&31:@^U2//
  144.         ^^N&31@^U3// ^^b:@^U3// ^^O&31:@^U3//
  145.         ^^N&31@^U4// ^^i:@^U4// ^^O&31:@^U4//
  146.         ^^N&31@^U5// ^^c:@^U5// ^^O&31:@^U5//
  147.         ^^N&31@^U6// ^^{:@^U6// ^^O&31:@^U6//
  148.         ^^N&31@^U7// ^^g:@^U7// ^^O&31:@^U7//
  149.         ^^N&31@^U8// ^^~:@^U8// ^^O&31:@^U8//
  150.         ^^N&31@^U9// ^^`:@^U9// ^^O&31:@^U9// '
  151.    Q0"L @^U0%<cr>%
  152.         @^U1%<cr->%
  153.         @^U2%<lf>%
  154.         @^U3%<tab>%
  155.         @^U4%<vt>%
  156.         @^U5%<ff>%
  157.         @^U6%<esc>%
  158.         @^U7%^%
  159.         @^U8%%
  160.         @^U9%<eof>% '
  161.    @^UV/0U8 < 1,0ET ET; J @S%^EGC%; -1AU9 MH0:; 0,.-1T .-1%5^[ 0,.K ET; 0,1ET
  162.              Q9-09"E :G3 %5^[ -Q5&7< :G8 %5^[ > F< '
  163.              Q9-13"E Z"N 0A-10"E :G0 D @O!C! ' ' :G1
  164.               !C! 13^T 1,0ET 13^T 10^T 0U5 -1%H^[ F< '
  165.              Q9-10"E :G2 Z"E A ' Z"N 0A-13"E :G1 D @O!C! ' '
  166.               !S! 13^T 1,0ET 13^T 10^T -1%H^[ MH0:; 0,1ET Q5< :G8 > F< '
  167.              Q9-11"E :G4 @O!S! '
  168.              Q9-12"E :G5 @O!S! '
  169.              Q9-27"E :G6 %5^[ F< '
  170.                      :G7 1,0ET Q9+64^T 2%5^[ > 1,0ET ET"L HT ' Q8-26"E -1+ '/
  171.    @^UC// 0U0 32< Q0:@^UC// %0^[ > 127:@^UC// 0U0 '
  172. J :@S%/-W%"S @FR// -1U1 '
  173. J :@S%/I%"S @FR// 1UI 1U1 '
  174.  
  175. ! strip all spaces & tabs and post fix extension (if none found) !
  176. HXA HXB 0,0XE 1U2 J :@S%"%"U 0,0XA 0,0XB J < @FS/^ES//; >
  177. J < @S%:%; 0,.:XA 0,.K >
  178. J :@S%[%"S .-1U9 @S%]% Q9,.:XA Q9,.K '
  179. J :@S%(%"S .-1U9 @S%)% Q9,.:XA Q9,.K '
  180. J :@S%<%"S .-1U9 @S%>% -1EJ-4"E Q9,.:XB | Q9,.:XA ' Q9,.K '
  181. J :@S%/%"S R .,Z:XE .,ZK '
  182. ^^%U8 -1EJ-4"E ^^?U8
  183.  J :@S%$%"S ^^$:@^UA%% -D '
  184.  J :@S%&%"S ^^&:@^UA%% -D '
  185.  J :@S%!%"S ^^!:@^UA%% -D '
  186.  J :@S/%/"S ^^%:@^UA%% -D '
  187.  J :@S%#%"S ^^#:@^UA%% -D '
  188.  J :@S%@%"S ^^@:@^UA%% -D ' '
  189. Z"E -1EJ-5"E @I%*.LIS% | @I%*.LST% ' |
  190.  J :@S%.%"F HXD ZJ @I%.*% -1EJ-5"E :QA"E :@ER%^EQD^EQE%"S -2D ' ' ' |
  191.   R ."E @I%*% ' ' '
  192. J GA ZJ GB HXA
  193. J :@S%^EU8%"S 0U2 %1^[ ' :@S%*%"S 0U2 %1^[ ' HXB Q2"E @EN/^EQA/ ' '
  194.  
  195.  @EI// ET&256"N -1EJ-4"E 0,32#8ET ^T^[ 32#8,0ET ' '
  196.  
  197. ! loop for all files !
  198. < Q2"N @O!NOLOOK! ' :@EN//; HK G* HXB !NOLOOK! HK :@ER/^EQB^EQE/"U @O!EOF! '
  199.  
  200. ! yank first page (possibly more) !
  201. MS ET"G @O!CTRLC! ' Z"E ^E"T 12@I%% ' A '
  202.  
  203. ! count files !
  204. %0^[ 1,16ET MH0:; 13^T 10^T -1%H^[ 0U5
  205.  
  206. ! announce file if requested !
  207. Q1"G @^A%File: % :G* -1%H"L 0UH '
  208. QI"N @^A%? % ^T&95U8 Q8-13"E ^T^[ | 13^T 10^T '
  209.  Q8-26"E 0; ' Q8-^^Y"N @O!EOF! ' |
  210. 13^T 10^T ' 13^T 10^T -1%H"L 0UH ' '
  211.  
  212. ! now loop until done or no file found !
  213. < ET"G @O!CTRLC! ' .UD 0,0XD
  214.   < ^E"T ZJ 12@I%% ' QDJ Q6; HXD QA+1L .-Z#^E#^N"E 0,0XD A F< ' ZK 0; >
  215.   MO0:; MV0:; ET"G @O!CTRLC! ' HK
  216.   Q6"N MH0:; @^A%**********% 13^T 10^T -1%H^[ GD 0,0XD QDJ L MS -Z; |
  217.   ^N:; Y ' >
  218. :Q9"N 0,1ET :G9 13^T 1,0ET 13^T 10^T -1%H"L 0UH ' '
  219. !EOF! Q2"N 0; ' Q7UL >
  220.  
  221. ! if no file found inform as much !
  222. Q0"E @^A"
  223. %No file" Q2"E @^A%s% ' @^A% matching "% :GA @^A%"% 13^T 10^T ' @O!EXIT!
  224.  
  225. ! trap CTRL/C for a clean exit !
  226. !CTRLC! -Q3U3
  227.  
  228. ! restore terminal modes and exit !
  229. !EXIT! 0:W-6"E 0U3 '
  230.  Q3"N 1,16ET 27MX ^^\^T '
  231.  0Q0-27"E 27MX ^^G^T ' 0Q0-(^^N&31)"E ^^O&31MX '
  232.  Q3"L MW ^^H^T MW ^^J^T '
  233.  HK ^C^C